/*
    The Nixy Library
    Code covered by the MIT License

    Author: mutouyun (http://darkc.at)
*/

#pragma once

#include "nixycore/general/general.h"

//////////////////////////////////////////////////////////////////////////
NX_BEG
//////////////////////////////////////////////////////////////////////////

template <typename T>
inline T * addressof(T & v)
{
    return reinterpret_cast<T *>(& const_cast<char &>(reinterpret_cast<const volatile char &>(v)));
}

template <typename T>
inline T * addressof(T * v)
{
    return v;
}

//////////////////////////////////////////////////////////////////////////
NX_END
//////////////////////////////////////////////////////////////////////////
